﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace Librerias.CAD
{
    public class CADComentario
    {


        public DataTable GetComentarios(string url)
        {

            SqlConnection con = new SqlConnection(CADConexion.connString);

            DataTable res = null;

            con.Open();
            // "select comentarios.*, usuNombre, usuApellido1, usuApellido2, usuImagen from comentarios,usuario where comUrl = '" + url + "' and usuCorreo = comCorreo order by comFecha asc";
            string select =
                "SELECT        comentarios.comId, comentarios.comCorreo, comentarios.comFecha, comentarios.comUrl, comentarios.comMensaje, usuario.usuNombre, usuario.usuApellido1, " +
                "usuario.usuApellido2, usuario.usuImagen, puntuaciones.puntosTot " +
                "FROM            comentarios INNER JOIN " +
                "usuario ON comentarios.comCorreo = usuario.usuCorreo LEFT OUTER JOIN " +
                "(SELECT        punUrl, SUM(punPuntos) AS puntosTot " +
                "FROM            puntos " +
                "GROUP BY punUrl) AS puntuaciones ON puntuaciones.punUrl = 'C' + CONVERT(varchar, comentarios.comId) " +
                "WHERE        (comentarios.comUrl = '" + url + "') " +
                "ORDER BY comentarios.comFecha ";

            SqlDataAdapter adaptadorSQL = new SqlDataAdapter(select, con);

            res = new DataTable();
            adaptadorSQL.Fill(res);

            con.Close();

            return res;
        }

        public void AddComentario(string usuario, string url, string mensaje)
        {
            SqlConnection con = new SqlConnection(CADConexion.connString);
            try
            {

                con.Open();

                new SqlCommand("insert into comentarios (comCorreo, comFecha, comUrl, comMensaje) values('" +
                                    usuario + "','" +
                                    DateTime.Now.ToString() + "','" +
                                    url  + "','" + 
                                    mensaje.Replace("\r\n", "<br/>") + "');", con).ExecuteNonQuery();

            }
            catch (SqlException ex)
            {
                throw ex;
            }
            finally
            {
                con.Close();
            }
        }

        public void DeleteComentario(string id)
        {
            SqlConnection con = new SqlConnection(CADConexion.connString);
            try
            {

                con.Open();

                new SqlCommand("delete from comentarios where comId = " + id, con).ExecuteNonQuery();

            }
            catch (SqlException ex)
            {
                throw ex;
            }
            finally
            {
                con.Close();
            }
        }
    }
}
